#ifndef _GAL_MATRIX_H_
#define _GAL_MATRIX_H_

/// <summary>
/// GAL Matrix
/// </summary>
typedef struct _Matrix
{
	float m11;
	float m12;
	float m13;
	float m14;
	float m21;
	float m22;
	float m23;
	float m24;
	float m31;
	float m32;
	float m33;
	float m34;
	float m41;
	float m42;
	float m43;
	float m44;

} Matrix, *MatrixPtr;

/// <summary>
/// Matrix Pipeline
/// </summary>
extern int GalMatrixIdentity(MatrixPtr mtx);
extern int GalMatrixOrtho(MatrixPtr mtx, float width, float height, float near, float far);
extern int GalMatrixPerspective(MatrixPtr mtx, float fov, float aspect, float near, float far);

#endif